//
//  UserAccountViewModel.swift
//  weibo-mxm
//
//  Created by 马晓敏 on 16/1/13.
//  Copyright © 2016年 马晓敏. All rights reserved.
//

import UIKit
import AFNetworking

class UserAccountViewModel: NSObject {
    var userAccount:UserCount?
 override init() {
  userAccount = UserCount.loadUserAccount()
    super.init()
    }
    
 //用户是否登录的标记
var userLogin:Bool{
    
   return userAccount?.access_token != nil
    
    }
    
    //获取授权的token
    func loadAccessToken(code:String,finished:(isSuccess:Bool)->()){
        let urlString = "https://api.weibo.com/oauth2/access_token"
        
        let parameters = ["client_id":client_id,"client_secret":client_secret,"grant_type":"authorization_code","code":code,"redirect_uri":redirect_uri]
        
        let AFN = AFHTTPSessionManager()
        //设置支持解析纯文本的json格式的数据
        AFN.responseSerializer.acceptableContentTypes?.insert("text/plain")
        AFN.POST(urlString, parameters: parameters, progress: nil, success: { (_, result) -> Void in
            
            print(result)
            //类型转换 ,将anyobject转换位字典
            guard let dict = result as? [String:AnyObject] else{
                
                print("数据格式不合法")
                finished(isSuccess: false)
                return
                
            }
            //   let access_token = dict["access_token"] as! String
            //   let uid = dict["uid"] as! String
            let account = UserCount(dict: dict)
            
            print(account)
            
            self.loadUserInfo(account, finished: finished)
            finished(isSuccess: true)
            }) { (_, error) -> Void in
                
                print(error)
             finished(isSuccess: false)
        }
        
    }
    //MARK:加载用户信息
    private func loadUserInfo(account:UserCount,finished:(isSuccess:Bool)->()){
        
        //print(access_token,uid)
        let urlString = "https://api.weibo.com/2/users/show.json"
        
        let parameters = ["access_token":account.access_token!,"uid":account.uid!]
        
        let AFN = AFHTTPSessionManager()
        
        AFN.GET(urlString, parameters: parameters, progress: nil
            , success: { (_, result) -> Void in
                print(result)
                //类型转换  将anyobject对象转换为 [key:value]
                guard let dict = result as?[String:AnyObject] else{
                    
                    print("数据格式不合法")
                    finished(isSuccess: false)
                    return
                    
                }
                let  name = dict["name"] as! String
                let avatar_large = dict["avatar_large"] as! String
                //需要的用户信息就全部获取到
                account.name = name;
                account.avatar_large = avatar_large
                
                print(account)
                account.saveAccount()
                finished(isSuccess: true)
            }) { (_, error) -> Void in
                
                print(error)
                finished(isSuccess: false)
        }
        
        
        
        
    }
    
}
